home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / util / arc / MakeSFX.lha / MakeSFX.phx < prev   
AmigaDOS Script File  |  1992-09-04  |  1KB  |  34 lines

  1. .key outfile,dir,pattern
  2. if "<outfile>" eq ""
  3. set out "make.exe"
  4. else
  5. set out "<outfile>.exe"
  6. endif
  7. set pcd "`cd`"
  8. if "<dir>" not eq ""
  9. cd "<dir>"
  10. endif
  11. if "<pattern>" eq ""
  12. set pat "#?"
  13. else
  14. set pat "<pattern>"
  15. endif
  16. echo "Making a self-extracting archive of directory *"`cd`*" to *"$out*"... "
  17.  
  18. echo "Generating source"
  19. list p=$pat files lformat "(%8l) %p%n"
  20. echo >t:make.asm " move.l 4.w,a6*n lea d(pc),a1*n jsr -408(a6)*n move.l d0,a6*n tst.l d0*n bne.s s*n moveq #20,d0*n rts*nd dc.b 'dos.library',0*n even*ns"
  21. list >>t:make.asm p=$pat files lformat " move.l #e_%k-f_%k,d0*n lea n_%k(pc),a0*n lea f_%k(pc),a1*n jsr w*n jmp j_%k*nn_%k dc.b *"%p%n*",0*n even*nf_%k incbin *"%p%n*"*ne_%k dc.b 0*n even*nj_%k"
  22. echo >>t:make.asm "x move.l a6,a1*n move.l 4.w,a6*n jmp -414(a6)*nw move.l d0,d5*n move.l a1,a5*n move.l a0,d1*n move.l #1006,d2*n jsr -30(a6)*n move.l d0,d6*n bne.s c*n addq.l #4,sp*n bra.s x*nc move.l d6,d1*n move.l a5,d2*n move.l d5,d3*n jsr -48(a6)*n move.l d6,d1*n jsr -36(a6)*n rts*n end"
  23. unset pat
  24.  
  25. echo "Creating executable file"
  26. smallphxass >nil: t:make.asm to $out.exe opt * ; yes, needs this! :)
  27. delete t:make.asm
  28.  
  29. echo "All done, now crunch the file *"$out*""
  30. cd "$pcd"
  31. unset pcd
  32. unset out
  33.  
  34.